package dao;

import java.util.List;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.stereotype.Repository;

import domena.Grafik;

@Repository
public class GrafikDAOImpl implements GrafikDAO {

	@Autowired
	private HibernateTemplate hibernateTemplate;

	@Override
	public void zapiszGrafik(Grafik grafik) {
		hibernateTemplate.save(grafik);
	}
	
	@Override
	public void edytujGrafik(Grafik grafik){
		hibernateTemplate.update(grafik);
	}
	
	@Override
	public void usunGrafik(long id){
		Grafik grafik = getId(id);
		
		if(grafik!=null)
			hibernateTemplate.delete(grafik);
	}
	
	@Override
	@SuppressWarnings("unchecked")
	public Grafik getId(long id) {
		DetachedCriteria cr = DetachedCriteria.forClass(Grafik.class).add(Restrictions.idEq(id));				
		List<Grafik> list = hibernateTemplate.findByCriteria(cr);
		if(!list.isEmpty())
			return list.get(0);
		return null;
	}
	
	@Override
	@SuppressWarnings("unchecked")
	public List<Grafik> listGrafik() {
		DetachedCriteria criteria = DetachedCriteria.forClass(Grafik.class);			
		List<Grafik> list = hibernateTemplate.findByCriteria(criteria);
		return list;
	}
}
